<!DOCTYPE html>
<html>
    
<head>
    <meta charset="utf-8">
    
    <title>ApocalypseBlog</title>
    <canvas id="header_canvas"style="position:absolute;bottom:0"></canvas> 
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

    

    

    

    

    
<link rel="stylesheet" href="/dist/build.css?v=1.14.0.css">

    <script src="/javascripts/bubble.js"></script>
    <script>
        window.isPost = false
        window.aomori = {
            
            
        }
        window.aomori_logo_typed_animated = false
        window.aomori_search_algolia = false

    </script>
<script>
    ((window.gitter = {}).chat = {}).options = {
      room: 'ApocalypseBlog/Apocalypse'
    };
  </script>
  <script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async defer></script>
<meta name="generator" content="Hexo 5.3.0"></head>
<!--DaoVoice服务http://blog.daovoice.io/-->

    <script>(function (i, s, o, g, r, a, m) {
        i['DaoVoiceObject'] = r;
        i[r] = i[r] ||
          function () {
            (i[r].q = i[r].q || []).push(arguments);
          };
        i[r].l = 1 * new Date();
        a = s.createElement(o);
        m = s.getElementsByTagName(o)[0];
        a.async = 1;
        a.src = g;
        a.charset = 'utf-8';
        m.parentNode.insertBefore(a, m);
      })(window, document, 'script', ('https:' === document.location.protocol ? 'https:' : 'http:') + "//widget.daovoice.io/widget/b00f5052.js", 'daovoice');
      daovoice('init', {
        app_id: "b00f5052",
      });
      daovoice('update');
    </script>
  
<body>

    <div class="container">
    <header class="header">
        <div class="header-type">
            
            <div class="header-type-inner">
                
                    <a class="header-type-title" href="/">ApocalypseBlog</a>
                
    
                
            </div>
        </div>
        <div class="header-menu">
            <div class="header-menu-inner">
                
            </div>
            <div class="header-menu-social">
                
            </div>
        </div>

        <div class="header-menu-mobile">
            <div class="header-menu-mobile-inner" id="mobile-menu-open">
                <i class="icon icon-menu"></i>
            </div>
        </div>
    </header>

    <div class="header-menu-mobile-menu">
        <div class="header-menu-mobile-menu-bg"></div>
        <div class="header-menu-mobile-menu-wrap">
            <div class="header-menu-mobile-menu-inner">
                <div class="header-menu-mobile-menu-close" id="mobile-menu-close">
                    <i class="icon icon-cross"></i>
                </div>
                <div class="header-menu-mobile-menu-list">
                    
                </div>
            </div>
        </div>
    </div>

</div>

    <div class="container">
        <div class="main">
            <section class="inner">
                <section class="inner-main">
                    <div class="index">
 
  
    
      <article
  id="post-10-个很酷的Vue-js组件，模板和demo示例"
  class="article article-type-post"
>

  

  <div class="article-inner">
    

    <div class="article-body">
      <header class="article-title">
        <a href="/2020/06/12/10-%E4%B8%AA%E5%BE%88%E9%85%B7%E7%9A%84Vue-js%E7%BB%84%E4%BB%B6%EF%BC%8C%E6%A8%A1%E6%9D%BF%E5%92%8Cdemo%E7%A4%BA%E4%BE%8B/">10+个很酷的Vue.js组件，模板和demo示例</a>
      </header>
      <div class="article-entry post-inner-html">
        
          <p>众所周知，<strong>Vue.js</strong> 组件是Vue创建自定义元素的重要功能之一，同时，模板可帮助你避免从头开始创建网页设计。总之，这些工具对于希望其开发过程更快，更高效的任何Web开发人员都是必不可少的。</p>
        
      </div>
    </div>

    

  </div>

  <footer class="article-footer">
    <div class="article-more-info">
      <div class="article-date">
  <time datetime="2020-06-11T22:12:47.000Z" itemprop="datePublished">2020-06-12</time>
</div>
      
      
    </div>
  </footer>

</article>

    
  
    
      <article
  id="post-TypeScript泛型及应用"
  class="article article-type-post"
>

  

  <div class="article-inner">
    

    <div class="article-body">
      <header class="article-title">
        <a href="/2020/06/12/TypeScript%E6%B3%9B%E5%9E%8B%E5%8F%8A%E5%BA%94%E7%94%A8/">TypeScript泛型及应用</a>
      </header>
      <div class="article-entry post-inner-html">
        
          <p>觉得 TypeScript 泛型有点难，想系统学习 TypeScript 泛型相关知识的小伙伴们看过来，<strong>本文从八个方面入手，全方位带你一步步学习 TypeScript 中泛型</strong>，详细的内容大纲请看下图：</p>
<p><img src="http://user-gold-cdn.xitu.io/2020/6/10/1729b3d970e872ef?imageView2/0/w/1280/h/960/format/webp/ignore-error/1" alt="master-ts-generic"></p>
<p><strong>动静（图）结合</strong>，在泛型学习之路助你一臂之力，还在犹豫什么，赶紧开启 TypeScript 泛型的学习之旅吧！</p>
        
      </div>
    </div>

    

  </div>

  <footer class="article-footer">
    <div class="article-more-info">
      <div class="article-date">
  <time datetime="2020-06-11T22:08:33.000Z" itemprop="datePublished">2020-06-12</time>
</div>
      
      
    </div>
  </footer>

</article>

    
  
    
      <article
  id="post-如何快速搭建好看的个人博客"
  class="article article-type-post"
>

  

  <div class="article-inner">
    

    <div class="article-body">
      <header class="article-title">
        <a href="/2020/06/12/%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E6%90%AD%E5%BB%BA%E5%A5%BD%E7%9C%8B%E7%9A%84%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/">如何快速搭建好看的个人博客</a>
      </header>
      <div class="article-entry post-inner-html">
        
          <h1 id="如何快速搭建好看的个人博客-完整配置与源码"><a href="#如何快速搭建好看的个人博客-完整配置与源码" class="headerlink" title="如何快速搭建好看的个人博客(完整配置与源码)"></a>如何快速搭建好看的个人博客(完整配置与源码)</h1><blockquote>
<p>博客地址 <a target="_blank" rel="noopener" href="http://www.inode.club/">程序员成长指北</a> 就是这样搭建出来的! 可以先体验下。</p>
</blockquote>
        
      </div>
    </div>

    

  </div>

  <footer class="article-footer">
    <div class="article-more-info">
      <div class="article-date">
  <time datetime="2020-06-11T22:04:28.000Z" itemprop="datePublished">2020-06-12</time>
</div>
      
      
    </div>
  </footer>

</article>

    
  
    
      <article
  id="post-动态代理设计模式"
  class="article article-type-post"
>

  

  <div class="article-inner">
    

    <div class="article-body">
      <header class="article-title">
        <a href="/2020/06/12/%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/">动态代理设计模式</a>
      </header>
      <div class="article-entry post-inner-html">
        
          <h1 id="10分钟看懂动态代理设计模式"><a href="#10分钟看懂动态代理设计模式" class="headerlink" title="10分钟看懂动态代理设计模式"></a>10分钟看懂动态代理设计模式</h1><blockquote>
<p>动态代理是Java语言中非常经典的一种设计模式，也是所有设计模式中最难理解的一种。本文将通过一个简单的例子模拟JDK动态代理实现，让你彻底明白动态代理设计模式的本质，文章中可能会涉及到一些你没有学习过的知识点或概念。如果恰好遇到了这些知识盲点，请先去学习这部分知识，再来阅读这篇文章。</p>
</blockquote>
        
      </div>
    </div>

    

  </div>

  <footer class="article-footer">
    <div class="article-more-info">
      <div class="article-date">
  <time datetime="2020-06-11T22:00:05.000Z" itemprop="datePublished">2020-06-12</time>
</div>
      
      
    </div>
  </footer>

</article>

    
  
    
      <article
  id="post-手把手教你写Socket长连接"
  class="article article-type-post"
>

  

  <div class="article-inner">
    

    <div class="article-body">
      <header class="article-title">
        <a href="/2020/06/12/%E6%89%8B%E6%8A%8A%E6%89%8B%E6%95%99%E4%BD%A0%E5%86%99Socket%E9%95%BF%E8%BF%9E%E6%8E%A5/">手把手教你写Socket长连接</a>
      </header>
      <div class="article-entry post-inner-html">
        
          <p>本篇我们先简单了解一下 TCP/IP，然后通过实现一个 echo 服务器来学习 Java 的 Socket API。最后我们聊聊偏高级一点点的 socket 长连接和协议设计。</p>
        
      </div>
    </div>

    

  </div>

  <footer class="article-footer">
    <div class="article-more-info">
      <div class="article-date">
  <time datetime="2020-06-11T21:55:57.000Z" itemprop="datePublished">2020-06-12</time>
</div>
      
      
    </div>
  </footer>

</article>

    
  
    
      <article
  id="post-Android目前最稳定和高效的UI适配方案"
  class="article article-type-post"
>

  

  <div class="article-inner">
    

    <div class="article-body">
      <header class="article-title">
        <a href="/2020/06/12/Android%E7%9B%AE%E5%89%8D%E6%9C%80%E7%A8%B3%E5%AE%9A%E5%92%8C%E9%AB%98%E6%95%88%E7%9A%84UI%E9%80%82%E9%85%8D%E6%96%B9%E6%A1%88/">Android目前最稳定和高效的UI适配方案</a>
      </header>
      <div class="article-entry post-inner-html">
        
          <p>Android系统发布十多年以来，关于Android的UI的适配一直是开发环节中最重要的问题，但是我看到还是有很多小伙伴对Android适配方案不了解。刚好，近期准备对糗事百科Android客户端设计一套UI尺寸适配方案，可以和小伙伴们详细的聊一聊这个问题。</p>
        
      </div>
    </div>

    

  </div>

  <footer class="article-footer">
    <div class="article-more-info">
      <div class="article-date">
  <time datetime="2020-06-11T21:53:01.000Z" itemprop="datePublished">2020-06-12</time>
</div>
      
      
    </div>
  </footer>

</article>

    
  
    
      <article
  id="post-Java反射真的很慢吗"
  class="article article-type-post"
>

  

  <div class="article-inner">
    

    <div class="article-body">
      <header class="article-title">
        <a href="/2020/06/12/Java%E5%8F%8D%E5%B0%84%E7%9C%9F%E7%9A%84%E5%BE%88%E6%85%A2%E5%90%97/">Java反射真的很慢吗</a>
      </header>
      <div class="article-entry post-inner-html">
        
          <h2 id="反射到底是好是坏"><a href="#反射到底是好是坏" class="headerlink" title="反射到底是好是坏"></a>反射到底是好是坏</h2><p>说到Java 中的反射，初学者在刚刚接触到反射的各种高级特性时，往往表示十分兴奋，甚至会在一些不需要使用反射的场景中强行使用反射来「炫技」。而经验较为丰富的长者，看到反射时往往会发出灵魂三问：为什么要用反射？反射不会降低性能么？不用还有什么办法可以解决这个问题？</p>
        
      </div>
    </div>

    

  </div>

  <footer class="article-footer">
    <div class="article-more-info">
      <div class="article-date">
  <time datetime="2020-06-11T21:49:50.000Z" itemprop="datePublished">2020-06-12</time>
</div>
      
      
    </div>
  </footer>

</article>

    
  
    
      <article
  id="post-HashMap原理技术知识整理"
  class="article article-type-post"
>

  

  <div class="article-inner">
    

    <div class="article-body">
      <header class="article-title">
        <a href="/2020/06/12/HashMap%E5%8E%9F%E7%90%86%E6%8A%80%E6%9C%AF%E7%9F%A5%E8%AF%86%E6%95%B4%E7%90%86/">HashMap原理技术知识整理</a>
      </header>
      <div class="article-entry post-inner-html">
        
          <p><img src="http://user-gold-cdn.xitu.io/2020/1/8/16f81686afbf1d6b?imageView2/0/w/1280/h/960/format/webp/ignore-error/1" alt="img"></p>
<p>HashMap涉及的技术点非常多，典型的数据结构和算法有机结合，JDK对HashMap优化变化中不断权衡时间复杂和空间复杂度。</p>
        
      </div>
    </div>

    

  </div>

  <footer class="article-footer">
    <div class="article-more-info">
      <div class="article-date">
  <time datetime="2020-06-11T21:47:26.000Z" itemprop="datePublished">2020-06-12</time>
</div>
      
      
    </div>
  </footer>

</article>

    
  
    
      <article
  id="post-Rxjava只看这一篇文章就够了"
  class="article article-type-post"
>

  

  <div class="article-inner">
    

    <div class="article-body">
      <header class="article-title">
        <a href="/2020/06/12/Rxjava%E5%8F%AA%E7%9C%8B%E8%BF%99%E4%B8%80%E7%AF%87%E6%96%87%E7%AB%A0%E5%B0%B1%E5%A4%9F%E4%BA%86/">Rxjava只看这一篇文章就够了</a>
      </header>
      <div class="article-entry post-inner-html">
        
          <h1 id="0-简介"><a href="#0-简介" class="headerlink" title="0. 简介"></a>0. 简介</h1><p>RxJava 其实就是提供一套异步编程的 API，这套 API 是基于观察者模式的，而且是链式调用的，所以使用 RxJava 编写的代码的逻辑会非常简洁。</p>
        
      </div>
    </div>

    

  </div>

  <footer class="article-footer">
    <div class="article-more-info">
      <div class="article-date">
  <time datetime="2020-06-11T21:43:39.000Z" itemprop="datePublished">2020-06-12</time>
</div>
      
      
    </div>
  </footer>

</article>

    
  
    
      <article
  id="post-一文彻底了解Android自定义控件3"
  class="article article-type-post"
>

  

  <div class="article-inner">
    

    <div class="article-body">
      <header class="article-title">
        <a href="/2020/06/12/%E4%B8%80%E6%96%87%E5%BD%BB%E5%BA%95%E4%BA%86%E8%A7%A3Android%E8%87%AA%E5%AE%9A%E4%B9%89%E6%8E%A7%E4%BB%B63/">一文彻底了解Android自定义控件3</a>
      </header>
      <div class="article-entry post-inner-html">
        
          <h3 id="Android自定控件的步骤"><a href="#Android自定控件的步骤" class="headerlink" title="Android自定控件的步骤"></a>Android自定控件的步骤</h3><p>为什么自定义控件要步骤化呢？因为很多新手同学，根据产品的要求做一些控件时，无从下手。</p>
<p>有了步骤以后，就可以按套路走了，再也不用害怕了。</p>
<p><img src="http://user-gold-cdn.xitu.io/2020/6/6/172877ef78f4537d?imageView2/0/w/1280/h/960/format/webp/ignore-error/1" alt="img"></p>
        
      </div>
    </div>

    

  </div>

  <footer class="article-footer">
    <div class="article-more-info">
      <div class="article-date">
  <time datetime="2020-06-11T21:37:27.000Z" itemprop="datePublished">2020-06-12</time>
</div>
      
      
    </div>
  </footer>

</article>

    
  

  
    <nav class="pagination">
        <a class="extend prev" rel="prev" href="/page/2/">Prev</a><a class="page-number" href="/">1</a><a class="page-number" href="/page/2/">2</a><span class="page-number current">3</span><a class="page-number" href="/page/4/">4</a><a class="extend next" rel="next" href="/page/4/">Next</a>
    </nav>
  
  
</div>


                </section>
            </section>

             
            <aside class="sidebar">
            
                
            </aside>
        </div>
    </div>

    <footer class="footer">
    <div class="footer-wave">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"><path fill="#3c4859" fill-opacity="1" d="M0,160L60,181.3C120,203,240,245,360,240C480,235,600,181,720,186.7C840,192,960,256,1080,261.3C1200,267,1320,213,1380,186.7L1440,160L1440,320L1380,320C1320,320,1200,320,1080,320C960,320,840,320,720,320C600,320,480,320,360,320C240,320,120,320,60,320L0,320Z"></path></svg>
    </div>

    <div class="footer-wrap">
        <div class="footer-inner"> 
            ApocalypseBlog &copy; 2021<br>
            Powered By Hexo · Theme By <a href="https://github.com/lh1me/hexo-theme-aomori" target="_blank">Aomori</a>
        </div>
    </div>

</footer>




<script src="/dist/build.js?1.14.0.js"></script>


<script src="/dist/custom.js?1.14.0.js"></script>









</body>

</html>